// course/announcement/announcement.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    announcements: [],
    page: 1, // 当前页码
    pageSize: 10, // 每页显示数量
    totalPages: 0, // 总页数
    hasMore: true // 是否还有更多数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.fetchAnnouncements();
  },

  /**
   * 获取公告数据
   */
  fetchAnnouncements() {
    const { page, pageSize } = this.data;
    wx.request({
      url: 'http://localhost:8080/notice/page',
      method: 'GET',
      data: {
        page: page,
        pageSize: pageSize
      },
      success: (res) => {
        if (res.statusCode === 200 && res.data.code === 200) {
          const newAnnouncements = res.data.data.list;
          // 记录第一条公告数据结构
          if (newAnnouncements.length > 0) {
            console.log('公告列表项数据结构:', newAnnouncements[0]);
            console.log('公告ID字段名称:', Object.keys(newAnnouncements[0]).includes('id') ? 'id' : 'noticeId');
          }
          // 检查公告列表项结构
          if (newAnnouncements.length > 0) {
            console.log('公告列表项结构:', newAnnouncements[0]);
          }
          const totalPages = res.data.data.pageTotal;

          if (page >= totalPages) {
            this.setData({
              hasMore: false
            });
          }

          this.setData({
            announcements: this.data.announcements.concat(newAnnouncements),
            page: page + 1,
            totalPages: totalPages
          });
        }
      },
      fail: (err) => {
        console.error('获取公告数据失败:', err);
      }
    });
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (this.data.hasMore) {
      this.fetchAnnouncements();
    }
  },
  
  /**
   * 跳转到公告详情页
   */
  navigateToDetail(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '/course/announcement/announcementDetails/announcementDetails?id=' + id
    });
  }
})